//
//  HPYStatusListViewModel.swift
//  SwiftVVBo
//
//  Created by hepeiyong on 16/8/15.
//  Copyright © 2016年 hpyhn. All rights reserved.
//

import UIKit

class HPYStatusListViewModel: NSObject {
    // 保存微博数据数组
    lazy var dataArray:[HPYStatusViewModel] = [HPYStatusViewModel]()
}


extension HPYStatusListViewModel{
    // 请求首页数据 isPullUp 是否是上拉加载更多
    func loadData(isPullUp: Bool,finish:(isSuccess: Bool)->()){

        var sinceId: Int64 = 0
        var maxId:Int64 = 0
        // 上拉加载更过
        if isPullUp {
            maxId = dataArray.last?.statusModel?.id ?? 0
            if maxId > 0 {
                // 则返回ID小于或等于max_id的微博，默认为0。
                maxId -= 1
            }
        }else {
            // 下拉刷新
            sinceId = dataArray.first?.statusModel?.id ?? 0
        }

        HPYNetworkTools.sharedTools.homeLoadData(sinceId, maxId: maxId, success: { (response) -> () in
            //print("请求成功:\(response)")
            // 判断response 是否为nil  而且是否可以转成一个数组
            guard let res = response?["statuses"] as? [[String: AnyObject]] else{
                finish(isSuccess: false)
                return
            }
            // 创建一个临时可变数组
            var tempArray:[HPYStatusViewModel] = [HPYStatusViewModel]()

            // 遍历数组
            for dic in res {
                let status = HPYStatusModel(dict: dic)
                let statusViewModel = HPYStatusViewModel(statusModel: status)
                // 添加模型
                tempArray.append(statusViewModel)
            }
            //赋值
            // 上拉
            if isPullUp {
                self.dataArray = self.dataArray + tempArray
            }else {
                // 下拉
                self.dataArray = tempArray + self.dataArray
            }
            finish(isSuccess: true)
        }) { (error) -> () in
            printLog("请求失败:\(error)")
            finish(isSuccess: false)
        }

    }
}